// hello.js
// var num = 100; //变量提升
// console.log(num); // 100
// alert("welcome to the JavaScript world!"); // 弹出欢迎信息
// document.write("Hello, World!"); // 在页面上写入内容    
// console.log("This is a simple JavaScript file."); // 输出信息到控制台
  
// 数据类型分类
// 1. 基本数据类型
//    - Number: 数字类型
//    - String: 字符串类型
//    - Boolean: 布尔类型
//    - Undefined: 未定义类型
//    - Null: 空类型
//    - object：对象类型

//基本数据类型示例
// var num = 100; 
// var str = "Hello, World!";
// var isTrue = true;

// var notDefined=undefined; // 未定义类型
// // 空类型示例
// var emptyValue = null;

// //合成数据类型示例：object
// var person = {
//     name: "John",
//     age: 30,
//     isStudent: false
// };

// var num = 100;
// console.log(typeof num); // 输出 "number"   
// console.log(typeof "Hello, World!"); // 输出 "string"
// console.log(typeof true); // 输出 "boolean"
// console.log(typeof undefined); // 输出 "undefined"
// console.log(typeof null);   // 输出 "object" (这是 JavaScript 的一个历史遗留问题)
// console.log(typeof { name: "Alice", age: 25 }); // 输出 "object"

//算数运算符示例
// var a = 10;
// var b = 5;
// console.log(a + b); // 输出 15
// console.log(a - b); // 输出 5
// console.log(a * b); // 输出 50
// console.log(a / b); // 输出 2
// console.log(a % b); // 输出 0

//自增自减运算符示例
// var x = 10;
// console.log(x++); // 输出 10 (先使用后增加)
// console.log(++x); // 输出 12 (先增加后使用)
// console.log(x--); // 输出 12 (先使用后减少) 
// console.log(--x); // 输出 10 (先减少后使用)

//赋值运算符示例
// var x = 10;
// x += 5; // 相当于 x = x + 5  
// console.log(x); // 输出 15
// x -= 3; // 相当于 x = x - 3
// console.log(x); // 输出 12 
// x *= 2; // 相当于 x = x * 2
// console.log(x); // 输出 24
// x /= 4;
// console.log(x); // 输出 6
// x %= 5; // 相当于 x = x % 5
// console.log(x); // 输出 1  

// x = 2;
// x **= 3; // 相当于 x = x ** 3
// console.log(x); // 输出 8 (2 的立方是 8)

//比较运算符示例
// var a = 10;
// var b = 20;
// console.log(a == b); // 输出 false (相等比较)
// console.log(a != b); // 输出 true (不相等比较)
// console.log(a > b); // 输出 false (大于比较)
// console.log(a < b); // 输出 true (小于比较)
// console.log(a >= b); // 输出 false (大于等于比较)
// console.log(a <= b); // 输出 true (小于等于比较)

// 严格相等和不相等比较
// var a = 10;
// var b = '10'; // 字符串类型的 '10'
// console.log(a == b); // 输出 true (宽松相等比较，类型转换后相等)
// console.log(a === b); // 输出 false (严格相等比较)
// console.log(a != b); // 输出 false (宽松不相等比较，类型转换后相等)
// console.log(a !== b); // 输出 true (严格不相等比较，类型不同)

//布尔运算符示例
// var a = true;
// var b = false;
// console.log(a && b); // 输出 false (逻辑与)
// console.log(a || b); // 输出 true (逻辑或)
// console.log(!a); // 输出 false (逻辑非)

//非布尔运算符示例
// console.log(!!a); // 输出 true (双重否定，转换为布尔值)
// console.log(!b); // 输出 true (逻辑非，转换为布尔值)
// console.log(!!(a && b)); // 输出 false (逻辑与的结果转换为布尔值)
// console.log(!!(a || b)); // 输出 true (逻辑或的结果转换为布尔值)
// console.log(!!(a == b)); // 输出 false (相等比较的结果转换为布尔值)

// 非布尔值转换为布尔值的示例
// console.log(!100); // 输出 false (非零数字转换为布尔值)
// console.log(!0); // 输出 true (零数字转换为布尔值)
// console.log(!"Hello");  // 输出 false (非空字符串转换为布尔值)
// console.log(!"");   // 输出 true (空字符串转换为布尔值)
// console.log(!null); // 输出 true (null 转换为布尔值)      
// console.log(!undefined); // 输出 true (undefined 转换为布尔值)
// console.log(!NaN); // 输出 true (NaN 转换为布尔值)
// console.log(!{}); // 输出 false (空对象转换为布尔值)
// console.log(![]);   // 输出 false (空数组转换为布尔值)
// console.log(![1, 2, 3]); // 输出 false (非空数组转换为布尔值)

// 条件语句示例
// var age = 18;
// if (age >= 18) {
//     console.log("You are an adult.");
// } else {
//     console.log("You are a minor.");
// }

// switch 语句示例
// var day = 3;
// switch (day) {
//     case 1:
//         console.log("Monday");
//         break;
//     case 2:
//         console.log("Tuesday");
//         break;
//     case 3:
//         console.log("Wednesday");
//         break;
//     default:
//         console.log("Other day");
//         break;
// }  

//三元运算符示例
// var isMember = true;
// var discount = isMember ? "20% off" : "No discount";
// console.log(discount); // 输出 "20% off"

// 循环语句示例

// for 循环
// for (var i = 0; i < 5; i++) {
//     console.log("Iteration " + i);
// }

// while 循环

// var j = 0;
// while (j < 5) {  
//     console.log("While iteration " + j);
//     j++;
// }

// do...while 循环
// var k = 0;
// do {
//     console.log("Do-while iteration " + k);
//     k++;
// } while (k < 5);

// break 和 continue 语句示例
for (var i = 0; i < 10; i++) {
    if (i === 5) {       
        break; // 当 i 等于 5 时，跳出循环
    }
    console.log("Break example: " + i);
}    

for (var i = 0; i < 10; i++) {
    if (i % 2 === 0) {
        continue; // 跳过偶数
    }
    console.log("Continue example: " + i); // 只输出奇数
}    



